﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WallpaperChanger.Core
{
    public interface IProvider
    {
        string Name { get; }

        string ID { get; }

        string Version { get; }

        string Description { get; }

        Company Company { get; }

        string SupportURL { get; set; }

        bool SupportNavigation { get; }

        bool SupportArchiving { get; }

        DateTime CanArchiveSince { get; }

        DateTime CanArchiveTo { get; }

        List<ServiceHook> ServiceHooks { get; }

        event EventHandler<WallpaperEventArgs> WallpaperReady;  //Used by wallpaper changer

        Photo Next();

        Photo Previous();

        Photo Current();

        Photo GetByDate(DateTime date);

        void Initialize(Resolution resolution);

        void Start();

        void Stop();
    }
}
